/**
 * @File	Module.h
 * @brief	class Module is the data structure represent cell modules
 * @author	Shaokp
 * @date	2010-11-24
 * @version	0.1
 */
#ifndef MODULE_H
#define MODULE_H
#include <string>
#include "Element.h"

class Module: public Element
{
public:
	Module(std::string name);

	Point getPosition() const;
	void setPosition(Point &pos);
	void getSize(double &sizex, double &sizey) const;
	void setSize(double sizex, double sizey);
	double getBufferExt() const;
	void setBufferExt(double bufferExt);
	int getType() const {return MODULE;}

	void setVertexs(std::vector<Point> &vertex);
	void getVertexs(std::vector<Point> &vertexs, double buffer = 0) const;
private:
	Point mPos;
	double mSizeX, mSizeY;
	double mBufferExt;
};
#endif
